package cn.yuanqiao.archive.appManager.mapper;

import cn.yuanqiao.archive.appManager.domain.TenantFields;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 基础数据Mapper接口
 * 
 * @author yuanqiao
 * @date 2023-06-08
 */
public interface TenantFieldsMapper
{
    /**
     * 查询基础数据
     * 
     * @param id 基础数据主键
     * @return 基础数据
     */
    public TenantFields selectTenantFieldsByID(@Param("id") String id, @Param("tableName") String tableName);

    /**
     * 查询基础数据列表
     * 
     * @param tenantFields 基础数据
     * @return 基础数据集合
     */
    public List<TenantFields> selectTenantFieldsList(TenantFields tenantFields);

    List<TenantFields> getGroupDataList(@Param("tenantFields") TenantFields tenantFields, @Param("type") Integer type, @Param("groupId") Long groupId,@Param("groupTableName") String groupTableName);

    List<TenantFields> getDataByIds(TenantFields tenantFields);

    /**
     * 新增基础数据
     * 
     * @param tenantFields 基础数据
     * @return 结果
     */
    public int insertTenantFields(TenantFields tenantFields);

    /**
     * 修改基础数据
     * 
     * @param tenantFields 基础数据
     * @return 结果
     */
    public int updateTenantFields(TenantFields tenantFields);

    /**
     * 删除基础数据
     * 
     * @param id 基础数据主键
     * @return 结果
     */
    public int deleteTenantFieldsByID(@Param("id") String id, @Param("tableName") String tableName);

    /**
     * 批量删除基础数据
     * 
     * @param IDs 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTenantFieldsByIDs(@Param("IDs") String[] IDs, @Param("tableName") String tableName);

    int createFieldsTable(@Param("tableName") String tableName);

    void initFields(@Param("tableName")String tableName);

    int selectyqfieldsCount(TenantFields fields);

    List<TenantFields> selectTenantFields(TenantFields tenantFields);
}
